/* ===================================================================
* Copyright (C) 2023 Hefei Jiushao Intelligent Technology Co., Ltd. 
* All rights reserved.
*
* This software is licensed under the GNU Affero General Public License 
* v3.0 (AGPLv3.0) or a commercial license. You may choose to use this 
* software under the terms of either license.
*
* For more information about the AGPLv3.0 license, please visit: 
* https://www.gnu.org/licenses/agpl-3.0.html
* For licensing inquiries or to obtain a commercial license, please 
* contact Hefei Jiushao Intelligent Technology Co., Ltd.
* ===================================================================
* Author: 
*/
#pragma once

#include "AxisOperate.h"

namespace acamcad
{

class AxisOperateDraw
{
public:
	AxisOperateDraw() {};
	~AxisOperateDraw() {};

public:
	void drawOperateAxis(const AxisOperation* axis, const std::string& type);
	void drawOperateAxisInSelect(const AxisOperation* axis, const std::string& type);

private:
	void drawOAxisArrow(const AMCAX::Coord3 & center, const AMCAX::Coord3 & dir, double off_len = 1.0);
	void drawOAxisSphere(const AMCAX::Coord3 & center, const AMCAX::Coord3 & dir, double off_len = 1.0);
	void drawCycleRing(const std::vector<AMCAX::Coord3>& move_plane);
	void drawOperateAxisPart(const AxisOperation* axis, const std::string& type, int part);
};


} //namespace acamcad